|
|
10.1 | TCP Operation | ||
| 10.1.4 | Windowing and window size |
|
The amount of data that needs to be
transmitted is often too large to be sent in a single data
segment. In this case, the data must be broken into smaller pieces to
allow for proper data transmission. TCP is responsible for breaking
data into segments. This is similar to feeding a child. Since most
small children cannot eat extremely large bites the person feeding
a child will often cut their food into smaller pieces that the child's
mouth can accommodate. Additionally, receiving machines may not be
able to receive data as quickly as the source can send data, perhaps
because the receiving device is busy with other tasks or perhaps the
sender is simply a more robust device. Once the data is segmented, it must be transmitted to the destination device. One of the services provided by TCP is flow control, which regulates how much data is sent during a given transmission period. The process of flow control is known as windowing. Window size determines the amount of
data that can be transmitted at one time before receiving an
acknowledgment from the destination. After a host transmits the
window-sized number of bytes, the host must receive an acknowledgment
that the data has been received before it can send any more data.
For example, with a window size of 1, each individual segment must
be acknowledged before sending the next segment.
TCP utilizes a sliding window when
determining transmission size. A sliding window allows for devices to
negotiate a window size to allow for more than one byte to be sent
during a single transmission.
|